package ws

import (
	"counter-help/admin/server/global"
	sysModel "counter-help/admin/server/plugin/cusservice/model"
	"encoding/json"
	"fmt"
	"strconv"
)

// 设置 用户的 状态信息
func setUserOnline(cType string, Id string) {
	// 给用户在record表里的客服广播此用户离线
	var list []sysModel.SysServiceRecord
	err := global.GVA_DB.Where("uid=?", Id).Find(&list).Error
	// 如果没错误 可以找到该用户信息
	if err == nil && len(list) > 0 {
		// 获取 Record 所有记录
		for _, rec := range list {
			// 10 进制 Int 转 Str
			strSerId := strconv.FormatInt(rec.ServiceId, 10)
			roleKey := "kf" + strSerId
			fmt.Println(roleKey)

			// 获取对应客服的链接
			serviceClient, ok := Manager.Clients[roleKey]
			if serviceClient != nil && ok {
				// 发送消息
				dataMsg := Message{
					MsgType:  "1",
					Sender:   Id,
					Receiver: strSerId,
					Role:     "user",
				}
				// 消息封装类型
				sendMsg := TypeMsg{
					Type: cType,
					Data: dataMsg,
				}
				// JSON 格式化
				str, _ := json.Marshal(sendMsg)
				// 发送给 Service
				serviceClient.Send <- str
			}
		}
	}
}
